package com.bzkj.basicinfo.mapper;

import com.bzkj.basicinfo.domain.basic.WarehouseType;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 仓库类型Mapper接口
 * 
 * @author bzkj
 */
public interface WarehouseTypeMapper 
{
    /**
     * 查询仓库类型列表
     * 
     * @param warehouseType 仓库类型
     * @return 仓库类型集合
     */
    List<WarehouseType> selectWarehouseTypeList(WarehouseType warehouseType);

    /**
     * 查询所有启用的仓库类型
     * 
     * @return 仓库类型集合
     */
    List<WarehouseType> selectAllWarehouseTypes();

    /**
     * 根据ID查询仓库类型
     * 
     * @param id 仓库类型ID
     * @return 仓库类型
     */
    WarehouseType selectWarehouseTypeById(Long id);

    /**
     * 新增仓库类型
     * 
     * @param warehouseType 仓库类型
     * @return 结果
     */
    int insertWarehouseType(WarehouseType warehouseType);

    /**
     * 修改仓库类型
     * 
     * @param warehouseType 仓库类型
     * @return 结果
     */
    int updateWarehouseType(WarehouseType warehouseType);

    /**
     * 删除仓库类型
     * 
     * @param id 仓库类型ID
     * @return 结果
     */
    int deleteWarehouseTypeById(Long id);

    /**
     * 修改仓库类型状态
     * 
     * @param id 仓库类型ID
     * @param status 状态
     * @return 结果
     */
    int updateWarehouseTypeStatus(@Param("id") Long id, @Param("status") String status);

    /**
     * 检查类型名称是否存在
     * 
     * @param typeName 类型名称
     * @param id 仓库类型ID（编辑时排除自己）
     * @return 结果
     */
    int checkTypeNameUnique(@Param("typeName") String typeName, @Param("id") Long id);
}
